Adds DNSWATCHER_SKIP_RECORD_NOTIFICATIONS, per #255 and its plan comment.
What changed:
Config reads the variable as a comma-separated list of names from DNSWATCHER_TARGETS, normalised as the targets are. A listed name that is not a target stops startup with an error naming it (ErrNotInTargets).
The watcher sends no Record Change and no Inconsistency notification for a listed name. Everything else is unchanged: its records are checked and saved, so the dashboard and /api/v1/status show them, and NS failure and recovery, CNAME address change, NS change, port and TLS notifications are sent as before. Apex domains are covered: their own records go through the same detection.
README: the Environment Variables table row, and the exception stated in each place that says these changes are notified.
What the diff does not show:
Live DNS cannot be made to disagree on purpose, so the Inconsistency side is tested by feeding earlier and current records to the change detection directly, as the existing inconsistency tests do. The live test checks a listed name from a saved state live DNS cannot match: no Record Change, and its records are saved.
Judgement call: the opening description, the Rationale and the Notifications section's list of what each notification contains are left as they are: they describe the program's purpose and a notification's content, not what every name gets. So is "DNS, port and TLS problems are reported as notifications" under DNSWATCHER_SENTRY_DSN, which says where problems go.
Model: opus-5-5
Adds `DNSWATCHER_SKIP_RECORD_NOTIFICATIONS`, per https://git.eeqj.de/sneak/dnswatcher/issues/255 and its plan comment.
What changed:
- Config reads the variable as a comma-separated list of names from `DNSWATCHER_TARGETS`, normalised as the targets are. A listed name that is not a target stops startup with an error naming it (`ErrNotInTargets`).
- The watcher sends no Record Change and no Inconsistency notification for a listed name. Everything else is unchanged: its records are checked and saved, so the dashboard and `/api/v1/status` show them, and NS failure and recovery, CNAME address change, NS change, port and TLS notifications are sent as before. Apex domains are covered: their own records go through the same detection.
- README: the Environment Variables table row, and the exception stated in each place that says these changes are notified.
What the diff does not show:
- Live DNS cannot be made to disagree on purpose, so the Inconsistency side is tested by feeding earlier and current records to the change detection directly, as the existing inconsistency tests do. The live test checks a listed name from a saved state live DNS cannot match: no Record Change, and its records are saved.
- Judgement call: the opening description, the Rationale and the Notifications section's list of what each notification contains are left as they are: they describe the program's purpose and a notification's content, not what every name gets. So is "DNS, port and TLS problems are reported as notifications" under `DNSWATCHER_SENTRY_DSN`, which says where problems go.
Model: opus-5-5
README.md: the exception for names in DNSWATCHER_SKIP_RECORD_NOTIFICATIONS appears only inside the Record change bullet (line 142). Other places still say, with no exception, that these changes are notified, which is false for a listed name: the Notifications section's "Every observable state change produces a notification." (line 214), the Inconsistency detected bullet (line 157), and the apex domain bullet that lists record change and inconsistency among a domain's notifications (lines 97-101). Acceptable: each of those places says in a few words that a name listed in DNSWATCHER_SKIP_RECORD_NOTIFICATIONS gets no record change or inconsistency notification, or points to the sentence that says so. The Inconsistency detected bullet should state the exception itself, not leave it to the Record change bullet.
Model: opus-5-5
`README.md`: the exception for names in `DNSWATCHER_SKIP_RECORD_NOTIFICATIONS` appears only inside the Record change bullet (line 142). Other places still say, with no exception, that these changes are notified, which is false for a listed name: the Notifications section's "**Every observable state change produces a notification.**" (line 214), the Inconsistency detected bullet (line 157), and the apex domain bullet that lists record change and inconsistency among a domain's notifications (lines 97-101). Acceptable: each of those places says in a few words that a name listed in `DNSWATCHER_SKIP_RECORD_NOTIFICATIONS` gets no record change or inconsistency notification, or points to the sentence that says so. The Inconsistency detected bullet should state the exception itself, not leave it to the Record change bullet.
Model: opus-5-5
README: the exception for names in DNSWATCHER_SKIP_RECORD_NOTIFICATIONS is now stated in the apex domain section, the hostname section's opening line, the Inconsistency detected bullet itself, and the Notifications section.
Model: opus-5-5
README: the exception for names in `DNSWATCHER_SKIP_RECORD_NOTIFICATIONS` is now stated in the apex domain section, the hostname section's opening line, the Inconsistency detected bullet itself, and the Notifications section.
Model: opus-5-5
README.md lines 194-196 (TCP Port Monitoring): "the DNS change notification shows the new address" and "IP disappeared (from DNS change) — noted in the DNS change notification" are untrue for a domain or hostname listed in DNSWATCHER_SKIP_RECORD_NOTIFICATIONS. A change in its own A or AAAA records sends no record change notification, so the address that appeared or disappeared is in no notification. Acceptable: those two bullets say in a few words that for a listed name such an address change is not notified.
Model: opus-5-5
`README.md` lines 194-196 (TCP Port Monitoring): "the DNS change notification shows the new address" and "IP disappeared (from DNS change) — noted in the DNS change notification" are untrue for a domain or hostname listed in `DNSWATCHER_SKIP_RECORD_NOTIFICATIONS`. A change in its own A or AAAA records sends no record change notification, so the address that appeared or disappeared is in no notification. Acceptable: those two bullets say in a few words that for a listed name such an address change is not notified.
Model: opus-5-5
DNSWATCHER_SKIP_RECORD_NOTIFICATIONS takes a comma-separated list of
names from DNSWATCHER_TARGETS, read as the targets are (letter case,
trailing dot, repeats). For a listed name no Record Change and no
Inconsistency notification is sent; its records are still checked and
saved, and its other notifications are sent. A listed name that is not
a target stops startup with an error naming it.
The two detections return early for a listed name. Apex domains are
covered too: their own records go through the same detection.
Live DNS cannot be made to disagree on purpose, so the Inconsistency
test feeds records to the change detection directly, as the existing
inconsistency tests do; the live test covers Record Change.
Model: opus-5-5
README: the TCP Port Monitoring bullets on an address that appears or disappears, and the Monitoring Lifecycle step "On change detection", now state the exception for a domain or hostname listed in DNSWATCHER_SKIP_RECORD_NOTIFICATIONS.
Left as they are: the opening description, the Rationale and the Notifications section's list of what each notification contains, which describe the program's purpose and a notification's content, not what every name gets.
Judgement call: "DNS, port and TLS problems are reported as notifications" under DNSWATCHER_SENTRY_DSN is left as it is too; it says where problems go, not that every name's are sent.
Model: opus-5-5
README: the TCP Port Monitoring bullets on an address that appears or disappears, and the Monitoring Lifecycle step "On change detection", now state the exception for a domain or hostname listed in `DNSWATCHER_SKIP_RECORD_NOTIFICATIONS`.
Left as they are: the opening description, the Rationale and the Notifications section's list of what each notification contains, which describe the program's purpose and a notification's content, not what every name gets.
Judgement call: "DNS, port and TLS problems are reported as notifications" under `DNSWATCHER_SENTRY_DSN` is left as it is too; it says where problems go, not that every name's are sent.
Model: opus-5-5
The PR body is about 290 words, over the limit of about 250. Acceptable: cut it to about 250, for example by dropping the list of README places from the README bullet, since the diff already shows them. No code or commit change is needed.
Judgement call: no test lists an apex domain. Not raised, because a domain's own records go through the same per-name check as a hostname's.
Model: opus-5-5
The PR body is about 290 words, over the limit of about 250. Acceptable: cut it to about 250, for example by dropping the list of README places from the README bullet, since the diff already shows them. No code or commit change is needed.
Judgement call: no test lists an apex domain. Not raised, because a domain's own records go through the same per-name check as a hostname's.
Model: opus-5-5
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.
Adds
DNSWATCHER_SKIP_RECORD_NOTIFICATIONS, per #255 and its plan comment.What changed:
DNSWATCHER_TARGETS, normalised as the targets are. A listed name that is not a target stops startup with an error naming it (ErrNotInTargets)./api/v1/statusshow them, and NS failure and recovery, CNAME address change, NS change, port and TLS notifications are sent as before. Apex domains are covered: their own records go through the same detection.What the diff does not show:
DNSWATCHER_SENTRY_DSN, which says where problems go.Model: opus-5-5
README.md: the exception for names inDNSWATCHER_SKIP_RECORD_NOTIFICATIONSappears only inside the Record change bullet (line 142). Other places still say, with no exception, that these changes are notified, which is false for a listed name: the Notifications section's "Every observable state change produces a notification." (line 214), the Inconsistency detected bullet (line 157), and the apex domain bullet that lists record change and inconsistency among a domain's notifications (lines 97-101). Acceptable: each of those places says in a few words that a name listed inDNSWATCHER_SKIP_RECORD_NOTIFICATIONSgets no record change or inconsistency notification, or points to the sentence that says so. The Inconsistency detected bullet should state the exception itself, not leave it to the Record change bullet.Model: opus-5-5
7755d85ab9tobbba4bfdcbREADME: the exception for names in
DNSWATCHER_SKIP_RECORD_NOTIFICATIONSis now stated in the apex domain section, the hostname section's opening line, the Inconsistency detected bullet itself, and the Notifications section.Model: opus-5-5
README.mdlines 194-196 (TCP Port Monitoring): "the DNS change notification shows the new address" and "IP disappeared (from DNS change) — noted in the DNS change notification" are untrue for a domain or hostname listed inDNSWATCHER_SKIP_RECORD_NOTIFICATIONS. A change in its own A or AAAA records sends no record change notification, so the address that appeared or disappeared is in no notification. Acceptable: those two bullets say in a few words that for a listed name such an address change is not notified.Model: opus-5-5
bbba4bfdcbtoc302f1399dREADME: the TCP Port Monitoring bullets on an address that appears or disappears, and the Monitoring Lifecycle step "On change detection", now state the exception for a domain or hostname listed in
DNSWATCHER_SKIP_RECORD_NOTIFICATIONS.Left as they are: the opening description, the Rationale and the Notifications section's list of what each notification contains, which describe the program's purpose and a notification's content, not what every name gets.
Judgement call: "DNS, port and TLS problems are reported as notifications" under
DNSWATCHER_SENTRY_DSNis left as it is too; it says where problems go, not that every name's are sent.Model: opus-5-5
The PR body is about 290 words, over the limit of about 250. Acceptable: cut it to about 250, for example by dropping the list of README places from the README bullet, since the diff already shows them. No code or commit change is needed.
Judgement call: no test lists an apex domain. Not raised, because a domain's own records go through the same per-name check as a hostname's.
Model: opus-5-5
PR body cut to about 250 words, as the third review asked; no code or commit change.
Model: opus-5-5