Add Hover provider support
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 68/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Quiet
- Tech stack
- javascript, python
Research direction
Start with resolve_record in the Python interpreter and resolveRecord in the JavaScript interpreter, then inspect the provider patterns in records.json for the single-form field mappings. Update README.md and CLAUDE.md as listed, and verify the Hover output against example.com’s live panel, including the 13-record set and SRV subdomain behavior. Done means both interpreters support {srvsubhost}, the hover block is present, and the verified headers no longer need the UNVERIFIED prefix.
Written by the indexing model from the issue text.
Description
Add Hover provider support
Add hover as a remediation provider in records.json so both the CLI
(--provider hover) and the web app emit Hover-panel-specific fix instructions
for the 13-record Thundermail set (1 MX, 5 SRV, 4 TXT, 3 DKIM CNAME).
Internal ticket: TBPRO 6940
(6940_HOVER_DNS_MITCHENER.CA, domain example.com).
⚠️ Ship as UNVERIFIED first. The SRV field layout below is confirmed from a
screenshot of the live Hover Edit DNS Record form; the MX/TXT/CNAME field labels come
from Hover's official Managing DNS Records at Hover reference tables, not a live add-record screenshot. Follow the
godaddy/ionos precedent: prefix each header stringUNVERIFIED —until confirmed
end-to-end, then drop the prefix.
🎯
example.comis the verification target. It's hosted on Hover (ns1.hover.com/
ns2.hover.com) and is currently 10/13 — three SRV records have a port typo (433
instead of443on_jmap/_caldavs/_carddavs). Once thehoverblock is in, the
checker's SRV fix strings can be eyeballed directly against the live Edit DNS Record
form the user already has open, then the port fixed to reach 13/13.
Add-record model
Hover uses a single Add-a-record form with a Type dropdown (like bunny/godaddy,
not per-type sections like cosmotown).
Path: Hover control panel → your domain → DNS section → Add a record → choose Type,
fill fields, Save. TTL defaults to 15 minutes.
Key conventions (from docs + the live SRV screenshot):
- Apex host = literal
@for MX and TXT (Hover's docs say "@for the root domain"). - SRV splits the
_service._protocollabel into separate Service (_jmap) +
Protocol (_tcp) fields — the same reason the{service}/{protocol}tokens exist
for GoDaddy/IONOS. BUT Hover's SRV Subdomain (optional) field is left blank
for the apex (the panel shows.example.combeside an empty box), not@. The
existing{srvhost}token yields@, so this needs a new{srvsubhost}token =
the SRV "rest" label but empty at the apex (mirroring how{subhost}relates to
{host}). Add it to both interpreters (Python + JS), kept identical. - CNAME cannot live on the root at Hover (docs), but all three DKIM CNAMEs are on
subdomains (tm1._domainkey…), so this is a non-issue for our record set.
Field mapping
| Type | Fields (Hover label → value) |
|---|---|
| MX | Type=MX, Hostname={host} (@), Priority={priority}, Mail Server={target} |
| SRV | Type=SRV, Service={service}, Protocol={protocol}, Subdomain={srvsubhost} (blank at apex), Priority={priority}, Weight={weight}, Port={port}, Server={target} |
| TXT | Type=TXT, Hostname={host} (@), Content={value} |
| CNAME | Type=CNAME, Hostname={host}, Target Name={target} (no trailing dot) |
Work items
- Add
{srvsubhost}token toresolve_record(Python) andresolveRecord(JS) — identical. - Add the
hoverprovider block torecords.json(headersUNVERIFIED —prefixed). - Update
README.mdprovider list + a Hover paragraph. - Update
CLAUDE.mdcrucial-decisions with Hover's quirks. - Verify against
example.comon the live panel, then dropUNVERIFIED —.
🤖 Generated with Claude Code
- Dominant language
- HTML
- Stars
- 3
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from thunderbird/dns-scripts
-
Handle CNAME and A record co-existence for MX recordsPossibly taken @rtanglao claimed this 7 days ago. Open
thunderbird/dns-scripts#22 · 1 comment · 1 assignee ·
-
Difficulty 3/5 1-2 days Newbie friendliness 65/100
thunderbird/dns-scripts#20 ·
-
Difficulty 5/5 Over a week Newbie friendliness 42/100
thunderbird/dns-scripts#13 ·
-
Add DigitalOcean provider supportMay be free again @rtanglao claimed this 76 days ago, and no pull request is open. Open
thunderbird/dns-scripts#9 · 3 comments · 1 assignee ·
-
Add GoDaddy provider supportMay be free again @rtanglao claimed this 83 days ago, and no pull request is open. Open
thunderbird/dns-scripts#4 · 1 comment · 1 assignee ·
All issues in thunderbird/dns-scripts
Similar issues
-
[Request]: zbarOpen
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
ScoopInstaller/Extras#18939 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
CommandCodeAI/command-code#992 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
gugod/App-perlbrew#879 ·
-
fix(mcp): avoid Unicode credential masking panics in profile_showPossibly taken @joshrotenberg claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 4 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day