Removed GET /api/v1/domains and GET /api/v1/hostnames from the HTTP API table. These endpoints are not implemented — the only routes in internal/server/routes.go are /health, /api/v1/status, and /metrics (conditional).
Removed "Inconsistency resolved" from hostname monitoring features. detectInconsistencies() detects current inconsistencies but has no state tracking to detect when they resolve.
Removed nxdomain and nodata from the state status values table. While the resolver defines these constants, buildHostnameState() in the watcher only ever sets status to "ok". Failed queries set "error" via the NS disappearance path. These values are never written to state.
Removed "Empty response" (NODATA/NXDOMAIN) detection claim. Changes are caught generically by detectRecordChanges(), not with specific NODATA/NXDOMAIN labeling.
What was NOT changed
"Inconsistency detected" remains — this IS implemented in detectInconsistencies().
All other feature claims were verified against the code and are accurate.
No Go source code was modified.
## Summary
Fixes documentation inaccuracies in README.md identified during QA audit.
### Changes
**API table (closes https://git.eeqj.de/sneak/dnswatcher/issues/67):**
- Removed `GET /api/v1/domains` and `GET /api/v1/hostnames` from the HTTP API table. These endpoints are not implemented — the only routes in `internal/server/routes.go` are `/health`, `/api/v1/status`, and `/metrics` (conditional).
**Feature claims (closes https://git.eeqj.de/sneak/dnswatcher/issues/68):**
- Removed "Inconsistency resolved" from hostname monitoring features. `detectInconsistencies()` detects current inconsistencies but has no state tracking to detect when they resolve.
- Removed `nxdomain` and `nodata` from the state status values table. While the resolver defines these constants, `buildHostnameState()` in the watcher only ever sets status to `"ok"`. Failed queries set `"error"` via the NS disappearance path. These values are never written to state.
- Removed "Empty response" (NODATA/NXDOMAIN) detection claim. Changes are caught generically by `detectRecordChanges()`, not with specific NODATA/NXDOMAIN labeling.
### What was NOT changed
- "Inconsistency detected" remains — this IS implemented in `detectInconsistencies()`.
- All other feature claims were verified against the code and are accurate.
- No Go source code was modified.
✅ "Inconsistency resolved" removed from notification feature claims (only detection is implemented)
✅nxdomain and nodata removed from state status values table (only ok and error are used in code)
✅ "Empty response" NODATA/NXDOMAIN language removed (changes are caught generically by detectRecordChanges())
Cross-checks:
✅ Remaining README claims spot-checked against code — all accurate
✅ Only README.md modified (8 lines removed, 0 added) — no Go code changes
✅docker build . passes (includes make check: formatting, linting, tests)
Clean, minimal, correct. Ready to merge.
## Review: PASS ✅
All changes are correct and address both issues completely.
### Verification against [issue #67](https://git.eeqj.de/sneak/dnswatcher/issues/67):
- ✅ Phantom endpoints `GET /api/v1/domains` and `GET /api/v1/hostnames` removed from HTTP API table
- ✅ Remaining endpoints (`/health`, `/api/v1/status`, `/metrics`) match actual routes in `internal/server/routes.go`
### Verification against [issue #68](https://git.eeqj.de/sneak/dnswatcher/issues/68):
- ✅ "Inconsistency resolved" removed from notification feature claims (only detection is implemented)
- ✅ `nxdomain` and `nodata` removed from state status values table (only `ok` and `error` are used in code)
- ✅ "Empty response" NODATA/NXDOMAIN language removed (changes are caught generically by `detectRecordChanges()`)
### Cross-checks:
- ✅ Remaining README claims spot-checked against code — all accurate
- ✅ Only `README.md` modified (8 lines removed, 0 added) — no Go code changes
- ✅ `docker build .` passes (includes `make check`: formatting, linting, tests)
Clean, minimal, correct. Ready to merge.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Fixes documentation inaccuracies in README.md identified during QA audit.
Changes
API table (closes #67):
GET /api/v1/domainsandGET /api/v1/hostnamesfrom the HTTP API table. These endpoints are not implemented — the only routes ininternal/server/routes.goare/health,/api/v1/status, and/metrics(conditional).Feature claims (closes #68):
detectInconsistencies()detects current inconsistencies but has no state tracking to detect when they resolve.nxdomainandnodatafrom the state status values table. While the resolver defines these constants,buildHostnameState()in the watcher only ever sets status to"ok". Failed queries set"error"via the NS disappearance path. These values are never written to state.detectRecordChanges(), not with specific NODATA/NXDOMAIN labeling.What was NOT changed
detectInconsistencies().Review: PASS ✅
All changes are correct and address both issues completely.
Verification against issue #67:
GET /api/v1/domainsandGET /api/v1/hostnamesremoved from HTTP API table/health,/api/v1/status,/metrics) match actual routes ininternal/server/routes.goVerification against issue #68:
nxdomainandnodataremoved from state status values table (onlyokanderrorare used in code)detectRecordChanges())Cross-checks:
README.mdmodified (8 lines removed, 0 added) — no Go code changesdocker build .passes (includesmake check: formatting, linting, tests)Clean, minimal, correct. Ready to merge.
Reviewer Verification: PASS ✅
Independent review confirms all changes are correct.
Issue #67 (phantom API endpoints):
GET /api/v1/domainsandGET /api/v1/hostnamesremoved from API tableinternal/server/routes.goonly defines/health,/api/v1/status, and/metrics(conditional)Issue #68 (unimplemented features):
detectInconsistencies()only detects current disagreements, no resolution trackingnxdomainandnodataremoved from status table —buildHostnameState()only ever sets"ok"; resolver defines constants but they never reach statedetectRecordChanges()Build:
docker build .passes (includesmake check)Scope:
Ready for merge. (Cannot self-approve since clawbot authored this PR.)