Skip to content

feat: probe-band-links v3 — engine-agnostic web-search fallback#629

Merged
BreakableHoodie merged 2 commits into
mainfrom
feat/probe-links-google-cse
Jul 18, 2026
Merged

feat: probe-band-links v3 — engine-agnostic web-search fallback#629
BreakableHoodie merged 2 commits into
mainfrom
feat/probe-links-google-cse

Conversation

@BreakableHoodie

Copy link
Copy Markdown
Owner

Summary

Follow-up to the link-probe tooling merged in #627, per Dre's feedback that manual web searches find pages the probe missed. Bands unresolved by canonical bandcamp URL-guessing now get one real web search — engine-agnostic: DuckDuckGo's keyless HTML endpoint by default (works with zero setup), auto-upgrading to Google Programmable Search when GOOGLE_CSE_KEY/GOOGLE_CSE_ID env vars exist (100 free queries/day). Search hits are bucketed REVIEW only, never AUTO — a result link can't prove band identity the way an exact name match + Ontario location on a bandcamp page can.

Live validation this session: DDG's top hit for "Blue Freezie" band bandcamp is the band's real page (the exact case the built-in search tool failed on); Vox Confidential resolved AUTO via URL-guess + full-body location extraction ("Kitchener, Ontario") — the doctrine-safe path working end-to-end.

What changed

File Change
scripts/probe-band-links.mjs ddgSearch() (keyless, music-domain-ranked, deduped, top 5) + googleSearch() (CSE, optional); unresolved bands route through the active engine; REVIEW rendering shows per-engine hits; throttled like the bandcamp probes

Security / correctness notes

Read-only outbound HTTP from a local script; no credentials required or stored (CSE keys read from env only, never written). No app code touched.

Verification

  • Tests: n/a — operator script, no runtime surface; live-tested against real endpoints (Blue Freezie acid test, Vox Confidential AUTO, Where's Shane? honest NONE)
  • ESLint: 0 errors
  • Format check: clean
  • Build: n/a
  • validate:openapi: n/a
  • Manual smoke: is the live test above

Built by Theo · Reviewed by Theo · 🤖 Claude Code

@BreakableHoodie BreakableHoodie added enhancement New feature or request priority:p2 Medium priority labels Jul 17, 2026
Copilot AI review requested due to automatic review settings July 17, 2026 19:42
@BreakableHoodie BreakableHoodie added enhancement New feature or request priority:p2 Medium priority labels Jul 17, 2026
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Bands unresolved by canonical-URL guessing now get one real web
search: DuckDuckGo's keyless HTML endpoint by default (zero setup),
upgraded to Google Programmable Search when GOOGLE_CSE_KEY/ID are
set. Search hits land in REVIEW only — a result link can't prove
identity the way a bandcamp location can. Acid-tested on the exact
case the built-in search tool missed (Blue Freezie: DDG's top hit is
the band's real page).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 17, 2026 19:43
@BreakableHoodie
BreakableHoodie force-pushed the feat/probe-links-google-cse branch from 31646e3 to a9f085e Compare July 17, 2026 19:43

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Comment thread scripts/probe-band-links.mjs Fixed
js/incomplete-url-substring-sanitization (high): filtering result
URLs with `!u.includes("duckduckgo.com")` is defeated by hosts like
`duckduckgo.com.evil.test` or `evil.test/?x=duckduckgo.com`. Parse
each URL and compare the real hostname (exact or `.duckduckgo.com`
suffix); unparseable URLs are dropped.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 18, 2026 00:04

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@BreakableHoodie
BreakableHoodie merged commit 1191631 into main Jul 18, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority:p2 Medium priority

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants