- Add CodebergSource targeting /api/v1/repos/search (Codeberg + any Gitea) - Public API by default; Authorization: token <t> when Token set - Unauth rate limit 60/hour, authenticated ~1000/hour - Emit Findings keyed to repo html_url with SourceType=recon:codeberg - Keyword index maps BuildQueries output back to ProviderName - httptest coverage: name/interface, rate limits (both modes), sweep decoding, header presence/absence, ctx cancellation
- BuildQueries(reg, source) dedups keywords and formats per-source syntax - github/gist use 'keyword' in:file; others use bare keyword - SourcesConfig placeholder struct for Wave 2 plans to depend on - RegisterAll no-op stub (Plan 10-09 will fill)
- Client.Do retries 429/403/5xx honoring Retry-After - 401 returns ErrUnauthorized immediately (no retry) - Context cancellation honored during retry sleeps - Default UA keyhunter-recon/1.0, 30s timeout, 2 retries