2025-09-16 - 2026-03-16
Overview
28 Pull requests merged by 1 user
Merged
#86 feat: enhance /api/v1/status endpoint with full monitoring data
Merged
#85 feat: add DNSWATCHER_SEND_TEST_NOTIFICATION env var
Merged
#83 feat: add unauthenticated web dashboard showing monitoring state and recent alerts
Merged
#79 test(notify): add comprehensive tests for notification delivery
Merged
#80 test(state): add comprehensive test coverage for internal/state package
Merged
#81 test(config): add comprehensive tests for config loading path
Merged
#74 docs: fix README inaccuracies found during QA audit
Merged
#75 feat: fail fast when no monitoring targets configured
Merged
#63 fix: use context.Background() for watcher goroutine lifetime
Merged
#65 fix: track multiple hostnames per IP:port in port state
Merged
#64 fix: enforce DNS-first ordering for port and TLS checks
Merged
#40 REPO_POLICIES compliance audit
Merged
#28 fix: 700ms query timeout, proper iterative resolution (closes #24)
Merged
#38 Simplify CI: docker build instead of manual toolchain setup
Merged
#37 fix: distinguish timeout from negative DNS responses (closes #35)
Merged
#23 fix: remove ErrNotImplemented stub — all checks fully implemented (closes #16)
Merged
#21 fix: look up A/AAAA records for apex domains to enable port/TLS checks (closes #19)
Merged
#22 fix: deduplicate TLS expiry warnings to prevent notification spam (closes #18)
Merged
#30 Reduce DNS query timeout and limit root server fan-out (closes #29)
Merged
#34 doc: add TESTING.md — real DNS only, no mocks
Merged
#20 fix: use full Lock in State.Save() to prevent data race (closes #17)
Merged
#6 feat: implement TCP port connectivity checker (closes #3)
Merged
#9 feat: implement iterative DNS resolver (closes #1)
Merged
#7 feat: implement TLS certificate inspector (closes #4)
Merged
#13 fix: suppress gosec G704 SSRF false positive on webhook URLs
Merged
#14 ci: add Gitea Actions workflow for make check
Merged
#8 feat: implement watcher monitoring orchestrator (closes #2)
Merged
#11 feat: unify DOMAINS/HOSTNAMES into single TARGETS config (closes #10)
1 Pull request proposed by 1 user
Proposed
#87 feat: add retry with exponential backoff for notification delivery
45 Issues closed from 2 users
Closed
#73 /api/v1/status endpoint returns minimal data
Closed
#82 Simple unauthenticated web UI showing test results and recent alerts
Closed
#84 add env var SEND_TEST_NOTIFICATION
Closed
#72 Config package has only 23% test coverage
Closed
#71 Notify package has only 11.1% test coverage
Closed
#70 State package has 0% test coverage
Closed
#78 µPaaS deployment setup
Closed
#67 README documents API endpoints that do not exist
Closed
#68 README documents features not implemented: inconsistency-resolved detection and nxdomain/nodata status values
Closed
#69 No validation or warning when DNSWATCHER_TARGETS is empty
Closed
#53 Watcher startup context bug: startCtx expires after fx startup
Closed
#55 Port check IP↔hostname association is lossy (single hostname per IP:port)
Closed
#58 Race between DNS and port/TLS checks (stale IPs)
Closed
#57 No backoff on persistent NS failures (24 notifications/day)
Closed
#60 State file format migration: no logic for version changes
Closed
#56 TLS cert key collision: duplicate checks for shared IP + SNI targets
Closed
#61 CNAME chain + per-NS storage interaction: incomplete IP resolution
Closed
#54 Per-nameserver state creates unbounded growth (no pruning)
Closed
#52 Notification delivery is fire-and-forget with no retry
Closed
#51 CNAME chain + per-NS storage interaction needs clarification
Closed
#50 State file format migration logic missing
Closed
#49 No DNSSEC validation in iterative resolution
Closed
#48 Race between DNS and port/TLS checks on stale IPs
Closed
#47 No backoff on persistent nameserver failures
Closed
#46 TLS cert key collision for shared IP + SNI targets
Closed
#45 Port check IP↔hostname association is lossy for shared IPs
Closed
#44 Per-nameserver state creates unbounded growth
Closed
#43 Bug: Watcher startup context expires immediately
Closed
#5 Spec review: design issues and edge cases in README
Closed
#15 Add branch protection to main branch
Closed
#39 REPO_POLICIES compliance audit
Closed
#24 CRITICAL: make check hangs on main — resolver tests do real DNS lookups
Closed
#35 Resolver should distinguish timeout from authoritative negative responses and retry on timeout
Closed
#16 CRITICAL: Resolver, PortCheck, and TLSCheck are unimplemented stubs
Closed
#19 CRITICAL: Port and TLS checks for apex domains silently do nothing
Closed
#18 CRITICAL: TLS expiry warning fires on every check cycle with no deduplication
Closed
#29 Reduce DNS query timeout and limit root server fan-out
Closed
#32 Resolver tests hit real DNS, causing slow/flaky/racy test suite
Closed
#17 CRITICAL: Data race in State.Save() — mutates snapshot under RLock
Closed
#3 feat: implement TCP port connectivity checker
Closed
#12 CRITICAL: resolver tests hit real DNS, test suite exceeds 30s
Closed
#1 Implement iterative DNS resolver
Closed
#4 feat: implement TLS certificate inspector
Closed
#2 feat: implement watcher monitoring orchestrator
Closed
#10 Unify DOMAINS and HOSTNAMES into a single TARGETS config
48 Issues created by 2 users
Opened
#1 Implement iterative DNS resolver
Opened
#2 feat: implement watcher monitoring orchestrator
Opened
#3 feat: implement TCP port connectivity checker
Opened
#4 feat: implement TLS certificate inspector
Opened
#5 Spec review: design issues and edge cases in README
Opened
#10 Unify DOMAINS and HOSTNAMES into a single TARGETS config
Opened
#12 CRITICAL: resolver tests hit real DNS, test suite exceeds 30s
Opened
#15 Add branch protection to main branch
Opened
#16 CRITICAL: Resolver, PortCheck, and TLSCheck are unimplemented stubs
Opened
#17 CRITICAL: Data race in State.Save() — mutates snapshot under RLock
Opened
#18 CRITICAL: TLS expiry warning fires on every check cycle with no deduplication
Opened
#19 CRITICAL: Port and TLS checks for apex domains silently do nothing
Opened
#24 CRITICAL: make check hangs on main — resolver tests do real DNS lookups
Opened
#29 Reduce DNS query timeout and limit root server fan-out
Opened
#32 Resolver tests hit real DNS, causing slow/flaky/racy test suite
Opened
#35 Resolver should distinguish timeout from authoritative negative responses and retry on timeout
Opened
#39 REPO_POLICIES compliance audit
Opened
#43 Bug: Watcher startup context expires immediately
Opened
#44 Per-nameserver state creates unbounded growth
Opened
#45 Port check IP↔hostname association is lossy for shared IPs
Opened
#46 TLS cert key collision for shared IP + SNI targets
Opened
#47 No backoff on persistent nameserver failures
Opened
#48 Race between DNS and port/TLS checks on stale IPs
Opened
#49 No DNSSEC validation in iterative resolution
Opened
#50 State file format migration logic missing
Opened
#52 Notification delivery is fire-and-forget with no retry
Opened
#51 CNAME chain + per-NS storage interaction needs clarification
Opened
#53 Watcher startup context bug: startCtx expires after fx startup
Opened
#54 Per-nameserver state creates unbounded growth (no pruning)
Opened
#55 Port check IP↔hostname association is lossy (single hostname per IP:port)
Opened
#56 TLS cert key collision: duplicate checks for shared IP + SNI targets
Opened
#57 No backoff on persistent NS failures (24 notifications/day)
Opened
#58 Race between DNS and port/TLS checks (stale IPs)
Opened
#59 No DNSSEC validation in iterative resolution
Opened
#60 State file format migration: no logic for version changes
Opened
#62 Notification delivery: fire-and-forget with no retry
Opened
#61 CNAME chain + per-NS storage interaction: incomplete IP resolution
Opened
#66 1.0/mvp
Opened
#67 README documents API endpoints that do not exist
Opened
#68 README documents features not implemented: inconsistency-resolved detection and nxdomain/nodata status values
Opened
#69 No validation or warning when DNSWATCHER_TARGETS is empty
Opened
#70 State package has 0% test coverage
Opened
#71 Notify package has only 11.1% test coverage
Opened
#72 Config package has only 23% test coverage
Opened
#73 /api/v1/status endpoint returns minimal data
Opened
#78 µPaaS deployment setup
Opened
#82 Simple unauthenticated web UI showing test results and recent alerts
Opened
#84 add env var SEND_TEST_NOTIFICATION