-
e8b40062da
build: re-vendor canonical files from prompts dd4027b (closes #257)
next
clawbot
2026-10-06 04:29:48 +02:00
-
d1060315b7
watcher, config: no Record Change or Inconsistency for listed names (closes #255)
clawbot
2026-10-06 03:01:46 +02:00
-
6822996134
resolver: a nameserver with a failed record type is not nodata (closes #253)
clawbot
2026-10-02 13:16:42 +02:00
-
67b67b8475
resolver, watcher: a domain's nameservers are only its own delegation (closes #222)
clawbot
2026-10-02 12:38:45 +02:00
-
9bd1a71d8f
resolver: the refused-query test asks several operators, one query each (closes #251)
clawbot
2026-10-02 12:00:48 +02:00
-
6332b48379
watcher: a name removed from the targets leaves the state (closes #223)
clawbot
2026-10-02 11:17:59 +02:00
-
9b9e26d6b2
resolver, watcher: a record type whose query fails keeps its previous records (closes #231)
clawbot
2026-10-02 10:51:23 +02:00
-
9b524e9d63
watcher: Port Change notifications list domains apart from hostnames (closes #248)
clawbot
2026-10-02 10:42:07 +02:00
-
b43402a631
dashboard and status API list a port's domains apart from its hostnames (closes #245)
clawbot
2026-10-02 10:31:07 +02:00
-
008ec5d13a
resolver: ask a referral's nameservers that come without addresses (closes #221)
clawbot
2026-10-02 10:12:08 +02:00
-
e46db71821
dashboard, status API and notifications tell apex domains from hostnames (closes #224)
clawbot
2026-10-02 10:08:32 +02:00
-
1218df9467
dashboard: list record types in the README's order (closes #226)
clawbot
2026-10-02 09:55:07 +02:00
-
250f3dd687
dashboard and status API show why a check failed (closes #225)
clawbot
2026-10-02 09:14:28 +02:00
-
c07976a73a
resolver: store a name's CNAME once per nameserver (closes #220)
clawbot
2026-10-02 09:09:51 +02:00
-
b047c3c64c
watcher: a lookup cut short by shutdown is not logged as an error (closes #229)
clawbot
2026-10-02 08:56:52 +02:00
-
f99de191c0
watcher: change messages name only the record types that differ (closes #219)
clawbot
2026-10-02 08:46:56 +02:00
-
5db5048754
watcher: startup notification no longer says every endpoint works (closes #230)
clawbot
2026-10-02 08:42:35 +02:00
-
26c9c74d8e
notify: a failed Mattermost delivery's error names Mattermost (closes #227)
clawbot
2026-10-02 08:40:19 +02:00
-
ceb24c5004
log: write durations as text, not nanoseconds (closes #228)
clawbot
2026-10-02 08:37:47 +02:00
-
ee4cadbd05
watcher: follow a watched name's CNAME for port and TLS checks (closes #203)
clawbot
2026-10-02 08:26:27 +02:00
-
a18803ff28
resolver tests: retry an answer missing the record type read (closes #218)
clawbot
2026-10-02 07:52:44 +02:00
-
3182fc99a6
docker: a plain docker build . stamps the git version (closes #210)
clawbot
2026-10-02 06:27:47 +02:00
-
889e17459b
resolver: never resend a refused query asking for recursion (closes #206)
clawbot
2026-10-02 06:10:54 +02:00
-
a67fd20e4f
ci: a push cancels its branch's older run, checkout keeps no token (closes #216)
clawbot
2026-10-02 06:07:53 +02:00
-
dba932c9e3
watcher tests: far fewer live queries, longer live attempts (closes #214)
clawbot
2026-10-02 06:04:31 +02:00
-
82836b41fd
resolver: try servers in a random order on each resolution (closes #138)
clawbot
2026-10-02 03:26:06 +02:00
-
af81f2ac76
README: correct claims the code does not bear out (closes #108)
clawbot
2026-10-02 03:14:26 +02:00
-
56c4395a39
config: watch a target listed twice only once (closes #207)
clawbot
2026-10-02 02:56:11 +02:00
-
c9510a986c
watcher: warn of an expiring certificate on every TLS check (closes #204)
clawbot
2026-10-02 01:58:28 +02:00
-
1f1640d4cd
resolver: take a domain's NS set from its delegation (closes #200)
clawbot
2026-10-02 01:48:54 +02:00
-
11ce1b249b
docs: add the README sections policy requires (closes #173)
clawbot
2026-10-02 01:25:13 +02:00
-
d09822562d
resolver: pass over a server that answers SERVFAIL or refers no closer (closes #197)
clawbot
2026-10-02 01:17:37 +02:00
-
97c8138c85
watcher: keep port state when no nameserver of a name answered (closes #193)
clawbot
2026-10-02 00:44:49 +02:00
-
d2f154b2cf
resolver: error from ResolveIPAddresses when no nameserver answered (closes #190)
clawbot
2026-10-02 00:28:53 +02:00
-
4c2932d6d6
fmt: format and check Markdown with prettier in a container (closes #119)
clawbot
2026-10-02 00:19:30 +02:00
-
b5814b2451
fmt: check goimports in fmt-check, run it at its pinned commit (#119)
clawbot
2026-10-01 23:51:22 +02:00
-
797c936c48
resolver: query a hostname at its own zone's servers (closes #189)
clawbot
2026-10-01 23:34:35 +02:00
-
c247f6bcf5
watcher: notify nameserver address changes (closes #105)
clawbot
2026-10-01 23:23:26 +02:00
-
f6567df2d0
watcher: save state when it stops and wait for that save (closes #114)
clawbot
2026-10-01 23:14:17 +02:00
-
c0ea9b96f2
server: report HTTP handler panics to Sentry (closes #107)
clawbot
2026-10-01 23:09:39 +02:00
-
fe01cdda1e
watcher: save and notify nothing for a cut-short port or TLS check (closes #185)
clawbot
2026-10-01 22:49:45 +02:00
-
a8f9a64600
middleware: take the client address from the right of X-Forwarded-For (closes #181)
clawbot
2026-10-01 22:35:17 +02:00
-
8f11ef0038
watcher: notify NS query failure and recovery (closes #104)
clawbot
2026-10-01 22:23:33 +02:00
-
fcd4f7e2c2
config: stop startup on an invalid DNS or TLS interval (closes #177)
clawbot
2026-10-01 22:19:04 +02:00
-
ed0f56f144
metrics: rate limit /metrics per client address before Basic Auth (closes #101)
clawbot
2026-10-01 22:09:14 +02:00
-
bea9a3b2f2
docker: report the real version in the image (closes #109)
clawbot
2026-10-01 22:01:43 +02:00
-
e93c2664b8
notify: release held deliveries so shutdown tests fail, not hang (closes #176)
clawbot
2026-10-01 21:58:58 +02:00
-
bde047f2a3
script/install-precommit: work where .git is a file (closes #129)
clawbot
2026-10-01 21:45:57 +02:00
-
6070356676
docs: bring TODO.md up to date (closes #146)
clawbot
2026-10-01 21:32:49 +02:00
-
3390d7065e
docker: set up the data directory in an entrypoint (closes #166)
clawbot
2026-10-01 21:15:02 +02:00
-
f7cc6b42e0
server: limit wildcard CORS to the public routes (closes #100)
clawbot
2026-10-01 21:05:43 +02:00
-
db94c903df
tests: move the test-only constructors into export_test.go (closes #111)
clawbot
2026-10-01 21:03:03 +02:00
-
5493e28480
notify: make the shutdown tests fail with the right message (closes #116)
clawbot
2026-10-01 20:42:21 +02:00
-
651429137f
tests: rename internal/livedns to livednstest and deny it outside tests (closes #164)
clawbot
2026-10-01 19:52:48 +02:00
-
93c1fe15e3
golangci: re-vendor the org config with gomodguard_v2 (closes #123)
clawbot
2026-09-29 10:27:07 +02:00
-
6dd6043534
tests: remove the DNS stand-ins from the watcher and resolver tests (closes #159)
clawbot
2026-09-29 08:44:07 +02:00
-
a93389e1a0
watcher: send the inconsistency alert once per disagreement (closes #158)
clawbot
2026-09-29 02:29:53 +02:00
-
95b017eb3e
resolver: lower-case DNS names in record values (closes #157)
clawbot
2026-09-29 00:30:29 +02:00
-
1ab0b9f61d
script: force lint and test to run in cibuild and docker (closes #115)
clawbot
2026-09-28 23:13:38 +02:00
-
19f282c8b3
server: assert timeouts on the served http.Server, not just the constructor (closes #120)
clawbot
2026-09-28 22:01:36 +02:00
-
148e47d9c0
docker: run as non-root, add health check, document upaas (closes #147)
clawbot
2026-09-28 20:13:37 +02:00
-
8aaa103956
middleware: add security response headers (closes #98)
clawbot
2026-09-22 00:52:48 +02:00
-
c2a07ce690
test: add tests for globals, healthcheck and logger (closes #110)
clawbot
2026-09-21 10:05:38 +02:00
-
b425692bfd
feat: add security response headers middleware (closes #98)
fix/98-security-headers
clawbot
2026-08-09 01:47:47 +00:00
-
-
b351a2350c
gomod: drop stale golang.org/x/sync indirect line (closes #132)
clawbot
2026-09-21 09:44:49 +02:00
-
1ffe303a6e
Merge main into next, resolving TODO.md (closes #145)
clawbot
2026-09-21 07:22:17 +00:00
-
-
fc43f893a5
server: set all four http.Server socket timeouts (#118)
clawbot
2026-09-09 15:17:43 +02:00
-
e77e206fc4
next (#136)
main
prod

clawbotandsneak
2026-09-09 14:57:55 +02:00
-
ae06f7e3a1
notify: drain in-flight deliveries at shutdown (closes #106)
clawbot
2026-09-09 14:26:53 +02:00
-
b8662b8a9c
docs: correct stale script headers and record the config-verify cost (closes #137)
sneak
2026-08-10 14:09:20 +00:00
-
168281ad60
docs: add MIT LICENSE and state the licence in the README (closes #102)
sneak
2026-08-10 14:04:31 +00:00
-
6f6bf3a65b
test: disable Go's test cache so every run queries live DNS (closes #139)
sneak
2026-08-10 13:48:15 +00:00
-
87bce43f8d
test: rework live-DNS quorum unit — tolerate silence, never a wrong answer
sneak
2026-08-10 13:33:26 +00:00
-
9cb2c2b7e0
test: make live DNS tests robust instead of gated (closes #93)
sneak
2026-08-10 13:09:17 +00:00
-
cc86473410
build: run all linting in Docker via Dockerfile.lint (closes #134)
sneak
2026-08-10 12:37:47 +00:00
-
-
db933f32a6
build: always install pinned lint tools in script/bootstrap (closes #117)
fix/117-bootstrap-pin
sneak
2026-08-09 14:54:18 +00:00
-
-
520ce79709
build: isolate golangci-lint cache and lock per checkout (closes #121)
fix/121-lint-cache-isolation
sneak
2026-08-09 14:35:42 +00:00
-
-
ff66ecc0c9
ci: re-run make check on every cibuild instead of serving it from the layer cache (closes #115)
fix/115-cibuild-cache
sneak
2026-08-09 06:04:15 +00:00
-
-
9347a2838b
build: update golangci-lint to v2.12.2 with org-standard v2 config (#96)

clawbotandsneak
2026-08-07 23:15:47 +02:00
-
f79cd98107
docs: document the no-DNS-mocking policy in README (closes #94) (#95)

clawbotandsneak
2026-08-07 22:31:48 +02:00
-
b72c436fda
scripts-to-rule-them-all (#92)
sneak
2026-07-07 02:14:32 +02:00
-
4463c56490
TODO (#91)
sneak
2026-07-06 21:20:44 +02:00
-
23f115053b
feat: add retry with exponential backoff for notification delivery (#87)

clawbotandclawbot
2026-03-22 07:14:59 +01:00
-
f788037bfb
config: use /var/lib/dnswatcher as default data directory (#89)

clawbotanduser
2026-03-20 06:56:09 +01:00
-
b64db3e10f
feat: enhance /api/v1/status endpoint with full monitoring data (#86)

clawbotandclawbot
2026-03-10 12:20:11 +01:00
-
65180ad661
feat: add DNSWATCHER_SEND_TEST_NOTIFICATION env var (#85)

clawbotanduser
2026-03-04 21:41:55 +01:00
-
1076543c23
feat: add unauthenticated web dashboard showing monitoring state and recent alerts (#83)


2026-03-04 13:03:38 +01:00
-
1843d09eb3
test(notify): add comprehensive tests for notification delivery (#79)


2026-03-04 11:26:31 +01:00
-
c5bf16055e
test(state): add comprehensive test coverage for internal/state package (#80)

clawbotandclawbot
2026-03-04 11:26:05 +01:00
-
d6130e5892
test(config): add comprehensive tests for config loading path (#81)

clawbotanduser
2026-03-04 11:23:24 +01:00
-
0a74971ade
docs: fix README inaccuracies found during QA audit (#74)


2026-03-02 08:40:42 +01:00
-
e882e7d237
feat: fail fast when no monitoring targets configured (#75)

clawbotandclawbot
2026-03-02 01:26:55 +01:00
-
713a2b7332
config: fail fast when DNSWATCHER_TARGETS is empty
fix/empty-targets-validation
user
2026-03-01 16:22:27 -08:00
-
-
83643f84ab
feat: implement GET /api/v1/domains and /api/v1/hostnames endpoints
fix/67-readme-api-endpoints
clawbot
2026-03-01 16:07:07 -08:00
-
-
6ebc4ffa04
fix: use context.Background() for watcher goroutine lifetime (#63)


2026-03-02 00:39:08 +01:00
-
b20e75459f
fix: track multiple hostnames per IP:port in port state (#65)

clawbotandclawbot
2026-03-02 00:32:27 +01:00
-
ee14bd01ae
fix: enforce DNS-first ordering for port and TLS checks (#64)

clawbotanduser
2026-03-02 00:10:49 +01:00
-
2835c2dc43
REPO_POLICIES compliance audit (#40)


2026-03-01 21:11:49 +01:00
-
299a36660f
fix: 700ms query timeout, proper iterative resolution (closes #24) (#28)

clawbotandclawbot
2026-03-01 21:10:38 +01:00
-
4dede6af9d
update README: reference REPO_POLICIES.md, add License/Author sections, document new Makefile targets
fix/issue-39-repo-policies
clawbot
2026-03-01 07:56:09 -08:00